The present invention relates generally to a system for transmitting and/or storing information via a medium of a high error rate, such as a radio transmission line. More specifically, the invention relates to a coding and/or decoding system suited to carry out the error correction/detection coding of a compressed code string obtained by the high efficiency compression coding to transmit and/or store the compressed code string.
For example, in a system for carrying out the high-efficient compression coding of a picture and/or voice information so as to have a small information content to transmit the compression-coded picture and/or voice information via a radio transmission line, such as a radio visual telephone, a portable information terminal and a digital television broadcast system, it is important how to transmit the obtained code string with a high quality since the transmission line has a high error rate.
In a case where a code string is transmitted and/or stored via such a medium of a high error rate, an error correcting code, such as a Bose-Chaudhuri-Hocquenghem (BCH) code, a Recommended Standard (RS) code and a convolutional code, is often used as means for reducing the error rate. In addition, an error correcting code, such as a check sum and a cyclic redundancy check (CRC), is used as means for enabling the error correction on the receiving side. The aforementioned error correction and/or error detection adds excessive bits (redundancy) to the transmitted and/or stored information in accordance with a predetermined rule to examine whether the transmitted and/or stored code string obeys the rule during decoding, to carry out the error correction/detection on the basis of the results.
However, in such a method for coding a code string obtained by a high-efficiency compression coding into error correcting/detecting codes to transmit and/or store the codes, there is a disadvantage in that it is difficult to be combined with a synchronous recovering technique for recovering a step out caused by a code word error in the transmission line/medium. As a synchronous recovering technique, a method for inserting a uniformly decodable code called a synchronization code to resume the decoding immediately after the synchronization code is detected when a step out occurs is often used.
In order to make a uniformly decodable code word of the synchronization code, the code word must be combined with another code word so as not to form the same bit pattern as the synchronization code. However, in an error correction/detection coding, it is generally difficult to form a code word so as to prevent a certain bit pattern from occurring. When the same bit pattern as the synchronization code occurs, a pseudo synchronization may be caused by the error detection of the synchronization code.
In order to avoid this problem, there is used a method for preventing the pseudo synchronization by determining whether the same bit pattern as the synchronization code exists in the code string after performing the error correction/detection coding, inserting a dummy bit into the bit pattern in accordance with a certain rule when the same bit pattern exists, and deleting the dummy bit in the same rule in a decoding system. However, in a case where the code string is transmitted and/or stored via a medium in which errors are easy to occur, errors may occur in the inserted bit, so that there is a problem in that a new step out or a new pseudo synchronization may occur.
In addition, in a case where the error correction/detection coding of a code string is carried out to insert a synchronization code, there is also a problem in that the coding efficiency is lowered since it is required to add many inserted bits to the code string in order to compensate an excess of information bits, for which the error detection and/or detection coding is to be carried out, at the end portion of a synchronization interval between the adjacent synchronization codes.
On the other hand, in order to enhance the error correcting/detecting capability, the redundancy of the transmitted and/or stored information may be enhanced. However, if the redundancy is enhanced, the number of bits required to transmit the same information is increased. Therefore, if the error correcting/detecting capability is enhanced, it is required to provide a transmission line of a higher transmission rate, or the number of bits of information to be stored is increased. In addition, if the transmission rate and the stored capacity are the same, the amount of information, which can be transmitted and/or stored, is decreased as the redundancy is enhanced. In a case where a picture and/or voice information is high-efficiently compression-coded to be transmitted and/or stored, in order to add the redundancy to improve the error resistance, the compression coding into a smaller amount of information must be carried out if the transmission and/or storage rate is the same, so that the picture quality and sound quality are lowered.
Therefore, as a method for providing a smaller redundancy and a high error resistance, there is a method called hierarchical coding. This is a method for enhancing the error resistance using the same means redundancy in comparison with when the same error correcting/detecting code is used, by classifying the high-efficiency compression-coded information in accordance with the magnitude of errors influencing the picture quality and the sound quality, using an error correcting/detecting code of a higher error correction/detection capacity while having a high redundancy, for information under a great influence of the error, and using an error correcting/detecting code of a less redundancy while having not so high error correction/detection capacity, for information which is not so greatly influenced by the error.
For example, in a coding system, which is formed by combining the motion-compensated prediction with the orthogonal transform and which is often used for the high-efficiency compression coding of a dynamic image, i.e., in a system for motion-compensation predicting an input dynamic image signal to orthogonal transform its prediction residue by the discrete cosine transform (DCT) or the like, the error correcting/detecting codes of a high error correcting/detecting capability are used for motion vector information, which greatly deteriorate the picture quality if an error occurs, and for lower coefficients of the orthogonal transformation coefficients of the prediction residual signal, and the error correcting/detecting codes of a low error correcting/detecting capability are used for higher coefficients of the orthogonal transformation coefficients of the prediction residual signal, which are under a small influence of the error.
In order to achieve such a hierarchical coding, it is required to switch the error correcting/detecting codes of different error correcting/detecting capabilities in the middle of the output code string. As a method for switching the error correcting/detecting codes of different error correcting/detecting capabilities, there is a method for adding a header information representative of the kind of the error correcting/detecting codes to a code string. FIG. 11 shows an example of a code string, to which the header information is added to switch the error correcting/detecting codes. In this example, two kinds of error correcting/detecting codes FEC1 and FEC2 are switched. The headers 1101 to 1104 have a header information representative of the kind of the error correcting/detecting codes and the number of the code words. In a coding system, code words, which are error correction/detection coded, are arranged after the header information. In a decoding system, the header information is decoded, and the error correcting/detecting codes are decoded in accordance with the decoding of the header information.
However, in the method for switching the error correcting/detecting codes by adding such a header information, there is a problem in that the number of bits of the code string to be transmitted and/or stored by adding the header information is increased. In a case where the picture and/or voice information is high-efficiency compression coded to be transmitted and/or stored, if the number of bits is occupied by the header information, the number of bits used for the high-efficiency compression coding of the picture and/or voice information is decreased, so that the picture quality and sound quality are deteriorated.
As mentioned above, if the error correction/detection coding of the code string, in which the high-efficiency compression coding of dynamic image signals and so forth is performed, is carried out, an optional bit pattern is produced. Therefore, in a case where the error correction/detection coding is combined with the synchronous recovering technique using a uniformly decodable synchronization code, there is a problem in that a pseudo synchronization is caused by the error detection of the synchronization code. Also in a case where the dummy bit is inserted to prevent the pseudo synchronization, there is a problem in that a new step out or a new pseudo synchronization is caused by the error of the inserted bit.
In addition, in a case where the error correction/detection coding of the code string is performed and the synchronization code is inserted, it is conventionally required to use many inserted bits to compensate an excess of information bits, for which the error detection and/or detection coding is to be carried out, at the end portion of a synchronization interval between the adjacent synchronization codes, so that there is a problem in that the coding efficiency is lowered.
Moreover, in a coding/decoding system for switching error correcting/detecting codes of different error correcting/detecting capabilities by adding a header information, the number of bits to be transmitted and/or stored by adding the header information is increased. Therefore, in a case where a picture and/or voice information is high-efficiency compression coded to be transmitted and/or stored, there is a problem in that the information content assigned to the picture and/or voice information is decreased to lower the picture quality and the sound quality.
It is therefore a principal object of the present invention to eliminate the aforementioned problems and to provide coding and decoding systems, which can prevent a pseudo synchronization and a step out due to the error detection of a synchronization code.
It is another object of the present invention to provide coding and decoding systems, which prevent a pseudo synchronization and a step out due to the error detection when an error correction/detection coding is combined with a synchronization recovering technique using a synchronization code.
It is further object of the present invention to provide coding and decoding systems, which can decrease the number of inserted bits used at the end portion in a synchronization interval to enhance the coding efficiency, when an error correction/detection coding is combined with a synchronization recovering technique using a synchronization code.
It is still further object of the present invention to provide coding and decoding systems which can decrease the number of bits of a code string, to which a header information representative of the kind of error correction/detection coding must be added and which is transmitted and/or stored, to improve the quality of information.
(1) A first coding system, according to the present invention, comprises: coding means for coding an input code string to an error correcting/detecting code comprising an information bit and a check bit; and code string assembling means for inserting a synchronization code into any one of a plurality of predetermined synchronization code inserting positions in an output code string, for arranging the information bit at an optional position in the output code string, and for arranging the check bit at a position other than the synchronization code inserting positions in the output code string to assemble the output code string.
A first decoding system, according to the present invention, comprises: synchronization code detecting means for detecting a synchronization code at a plurality of predetermined synchronization code inserting positions on the basis of a code string, which is coded to an error correcting/detecting code comprising an information bit and a check bit; code string resolving means for resolving the code string to extract the information bit of the error correcting/detecting code and the check bit of the error correcting/detecting code arranged at a position other than the synchronization code inserting positions; and decoding means for receiving the information bit and the check bit extracted by the code string resolving means to decode the error correcting/detecting code.
Thus, in the first coding/decoding system, the synchronization code exists only at the predetermined synchronization code inserting position in the output code string, and the check bit of the error correcting/detecting code exists at a position other than the synchronization code inserting position. Therefore, even if the same bit pattern as the synchronization code is contained in the check bit, there is no probability that it is erroneously detected that the same bit pattern as the synchronization code is a synchronization code. Accordingly, since it is not required to use a special error correcting/detecting code for preventing a particular bit pattern and to insert a bit for preventing a synchronization code after the error correction/detection coding, the degree of freedom for the used error correcting/detecting code can be increased. In addition, since there is no probability that a new synchronization detection error may occur due to the insertion of an error into an inserted bit, it is possible to improve the resistance to errors.
(2) In a second coding system according to the present invention, code string transforming means is added to the first coding system. The code string transforming means transforms an input code string other than synchronization codes arranged at a plurality of predetermined synchronization code inserting positions in an output code string so that a humming distance from the synchronization code is equal to or greater than a predetermined value. The code string transformed by the code string transforming means is inputted to coding means to be coded to an error correcting/detecting code comprising an information bit and a check bit.
In a second decoding system according to the present invention, code string transforming means is added to the first decoding system. The code string transforming means transforms a code string other than the synchronization code, which exists at a synchronization code inserting position and which is transformed so that a humming distance from the synchronization code in the code string decoded by the decoding means is equal to or greater than a predetermined value, into the original code string.
Thus, in the second coding/decoding system, the coding system carries out the transforming process so that the humming distance from the synchronization code with respect to a bit string arranged at the synchronization code inserting position is equal to or greater than a predetermined value, and the decoding system carries out the reverse transformation. Therefore, since the same bit pattern as the synchronization code is not contained in the bit string, it is possible to prevent the error detection of a synchronization code. In addition, if the transform is carried out so that the humming distances between the synchronization code and the other code strings are great, the synchronization code can be distinguished from the other code strings even if an error is mixed into the code strings, so that the probability of the error detection of the synchronization code due to errors can be decreased.
Since this transforming/inverse transforming process is carried out only at the synchronization code inserting position, the overhead is less than those in conventional methods for carrying out transforming/inverse transforming process over the whole code string. In addition, in the code string inputted to the coding system, it is not required to carry out the transforming process so as not to produce the same bit pattern as the synchronization code, and it is not required to use a special code string. In particular, in a case where a variable length coding system for switching and using different code word tables is used as an input of this coding system, if the code word table is prepared so as not to produce the same pattern as the synchronization code in the variable length coding system, there is a problem in that the coding efficiency is lowered. However, the second coding/decoding system can eliminate such a problem.
(3) A third coding system, according to the present invention, comprises: coding means for coding an input code string to an error correcting/detecting code; synchronization code inserting means for inserting a synchronization code into the code string; and determining means for determining the number of bits an information to be coded to an error correcting/detecting code immediately before the synchronization code in the code string, wherein the coding means causes the error correcting/detecting code immediately before the synchronization code, to be a degenerate code, which adaptively degenerated on the basis of the number of bits determined by the determining means.
A third decoding system, according to the present invention, comprises: decoding means for decoding a code string, which is coded to an error correcting/detecting code and into which a synchronization code is inserted; synchronization code detecting means for detecting the synchronization code in the code string; and determining means for determining the number of bits of an information, which is coded to an error correcting/detecting code immediately before the synchronization code in the code string detected by the synchronization code detecting means, wherein the decoding means decodes by identifying whether the error correcting/detecting code immediately before the synchronization code is a degenerate code on the basis of the determined result of the determining means.
Thus, in the third coding/decoding system, since a degenerate code degenerated to the number of bits required to code the information bit remaining at the end portion of a synchronization interval is used as the error correcting/detecting code immediately before the synchronization code, it is not required to use many inserted bits in order to compensate the remainder of the information bit at the end portion of the synchronization interval, so that the coding efficiency can be improved.
(4) A fourth coding system, according to the present invention, comprises: coding means for coding a code string containing kinds of input information to an error correcting/detecting code; and switching means for switching the kind of the error correcting/detecting code in accordance with the kinds of the input information in the code string.
A fourth decoding system, according to the present invention, comprises: decoding means for decoding a code string, which is coded to a different kind of error correcting/detecting code in accordance of the kind of information, to generate the original information; and means for determining the kind of the error correcting/detecting code on the basis of the kind of information generated by the decoding means, to inform the decoding means.
Thus, in the fourth coding/decoding system, in a case where the coding/decoding is carried out by switching the error correcting/detecting code in accordance with the kind of information, the coding system switches the error correcting/detecting code in accordance with the kind of information of the input code string, and the decoding system determines the kind of the error correcting/detecting code on the basis of the decoded information to carry out the same switching as that of the coding system. Therefore, it is not required to use a header information representative of the kind of the error correcting/detecting code unlike conventional systems, so that it is possible to remove the overhead due to the header information.
(5) A fifth coding system, according to the present invention, comprises: code string transforming means for transforming an input code string other than synchronization codes, which are arranged at a plurality of predetermined synchronization code inserting positions in an output code string and in intervals of a predetermined number of bits before and after the predetermined synchronization code inserting positions in an output code string, so that a humming distance from the synchronization code is equal to or greater than a predetermined value; coding means for coding a code string transformed by the code string transforming means, to an error correcting/detecting code comprising an information bit and a check bit; and code string assembling means for inserting a synchronization code into any one of a plurality of predetermined synchronization code inserting positions in the output code string, for arranging the information bit at an optional position in the output code string, and for arranging the check bit at a position other than the synchronization code inserting positions in the output code string to assemble the output code string.
A fifth decoding system, according to the present invention, comprises: synchronization code detecting means for detecting a synchronization code at a predetermined synchronization code inserting position and in an interval of a predetermined number of bits before and after the predetermined synchronization code inserting position, on the basis of a code string, which is coded to an error correcting/detecting code comprising an information bit and a check bit and into which the synchronization code; code string resolving means for resolving the code string to extract the information bit of the error correcting/detecting code and the check bit of the error correcting/detecting code arranged at a position other than the synchronization code inserting position; decoding means for receiving the information bit and the check bit extracted by the code string resolving means to decode the error correcting/detecting code; and code string transforming means for transforming a code string other than the synchronization code, which is transformed so that a humming distance from the synchronization code in the code string decoded by the decoding means is equal to or greater than a predetermined value and which exists at the synchronization code inserting position and in an interval of a predetermined number of bits before and after the synchronization code inserting position, into the original code string.
Thus, in the fifth coding/decoding system, the input code string is transformed in the synchronization code inserting interval as well as in the interval of the predetermined number of bits before and after the synchronization code inserting interval so that the humming distance is equal to or greater than the predetermined value, and the decoding system carries out the reverse transformation of the input code string, so that the same bit pattern as the synchronization code is not contained in this interval. Therefore, even if the transmission/storage of a bit string coded through a transmission line or a storage medium for causing a bit loss, in which a part of bits is lost, and a bit addition, in which an excess bit is added, is carried out, the synchronization code can be distinguished from the other code strings if the number of lost/added bits is equal to or less than a predetermined number of bits, so that the decoding system can correctly carry out the synchronization detection.
(6) A sixth coding system, according to the present invention, comprises: multiplexing means for multiplexing kinds of compressed codes, which are obtained by compression coding an input signal, to produce a multiplexed code string; and code string assembling means for inputting the multiplexed code string to assemble an output code string, wherein the code string assembling means inserts a synchronization code into any one of a plurality of periodically predetermined synchronization code inserting positions in the output code string.
In this case, in order to insert the synchronization code into any one of the plurality of periodically predetermined synchronization code inserting positions in the output code string, the code string assembling means inserts a stuffing bit into the output code string, or periodically determines the plurality of synchronization code inserting positions in the output code string and inserts an information (a pointer information) representative of the boundary of the multiplexed code string, to insert the synchronization code into any one of the plurality of synchronization code inserting positions. Thus, the synchronization code can be inserted only into any one of the plurality of periodically predetermined synchronization code inserting positions.
The stuffing bit is preferably a code, which can be uniformly decoded in a backward direction of the output code string. Thus, if the decoding system compares the decoding end position of the code string immediately before the stuffing bit with the starting position of the stuffing bit, it is possible to easily detect an error in the input code string.
Moreover, the humming distances of the stuffing bit from the synchronization code and the part thereof are preferably equal to or greater than a predetermined value. Thus, there is an advantage in that the probability of the occurrence of a pseudo synchronization.
A sixth decoding system, according to the present invention, comprises: synchronization code detecting means for detecting a synchronization code in an output code string; demultiplexing means for demultiplexing on the basis of the position of the synchronization code detected by the synchronization code detecting means from the input code string, to produce a compressed code string; and decoding means for decoding the compressed code to output a reconstructed signal, wherein the synchronization code detecting means detects the synchronization code at a plurality of periodically predetermined synchronization code inserting positions in the input code string.
Thus, in the case of the sixth coding/decoding system, since the coding system inserts the synchronization code into the multiplexed code string, which is obtained by multiplexing kinds of compressed codes, only at the periodically predetermined synchronization code inserting positions, the decoding system may carry out the synchronization detection only at the synchronization code inserting positions, so that the number of synchronization code detecting processes can be decreased in comparison with conventional systems for inserting a synchronization code into a code string at an optional position. In addition, in accordance with the decrease of the number of the synchronization code detecting processes, it is possible to decrease the probability that a pseudo synchronization occurs because of the bit string inputted to the decoding system changed to the same bit pattern as the synchronization code due to bit error. Therefore, according to the present invention, it is possible to decrease the number of the occurrences of the pseudo synchronization, so that the processing quantity in the synchronization code detection can be decreased.
(7) In a seventh coding system according to the present invention, code string transforming means is added to the sixth coding system. The code string transforming means transforms a code string other than said synchronization code, which is arranged at said synchronization code inserting position in said output code string, so that a humming distance from said synchronization code is equal to or greater than a predetermined value.
A seventh decoding system, according to the present invention, further comprises: code string transforming means for transforming a code string other than the synchronization code, which is transformed so that a humming distance from the synchronization code is equal to or greater than a predetermined value at the synchronization code inserting position of the input code string, into the original code string.
Thus, in the seventh coding/decoding system, in addition to the construction of the sixth coding/decoding system, the bit insertion in view of the error of the synchronization code, i.e., the transformation of the humming distance of the bit string arranged at the synchronization code inserting position from the synchronization code, is carried out, so that the same bit pattern as the synchronization code is contained in the bit code string. Therefore, it is possible to ensure that the error detection of the synchronization code does not occur with respect to an error of a supposed number of bits or less, so that it is possible to decrease the probability of the error detection of the synchronization code.
Furthermore, in the present invention, the synchronization code is a code string, which is inserted into a code string for synchronization recovery and which can be uniformly decoded. For example, if a code string for inserting a synchronization code is a multiplexed code string, which is obtained by multiplexing a plurality of kinds of compressed codes obtained by compression coding an image signal inputted for each frame, the synchronization code is a code representative of a partition of a coding frame, partitions of the plurality of kinds of compressed codes, and other partitions.
As described above, according to the present invention, the following advantages can be obtained.
(1) According to the first coding/decoding system, the synchronization codes are inserted only into the synchronization code inserting positions arranged at regular intervals, and the check bits of the error correcting/detecting code are shifted so as to exist at positions other than the synchronization code inserting positions. Therefore, even if the same bit pattern as the synchronization code occurs in the check bit, the same pattern as the synchronization code does not occur at the synchronization code inserting position, and, in theory, there is no probability that synchronization is detected.
In addition, if the bit insertion into a code string at the synchronization code inserting position is carried out so as not to produce a pseudo synchronization code, it is possible to eliminate the difficulty in forming a code word so as not to produce the same bit pattern as the synchronization bit.
(2) According to the second coding/decoding system, in addition to the construction of the first coding system, the bit insertion is carried out in view of the synchronization code, i.e., the transforming process is carried out so that the humming distance from the synchronization code is equal to or greater than the predetermined value with respect to the bit string arranged at the synchronization code inserting position, and the decoding system carries out the backward transformation, so that the bit code does not contain the same bit pattern as the synchronization code. Therefore, it is possible to ensure to prevent the error detection of the synchronization code from occurring due to the errors of the supposed number of bits or less, so that the probability of the error detection of the synchronization code is decreased. In addition, if such transformation is carried out, it is possible to distinguish the synchronization code from the other code strings even if an error is mixed into the code string, so that the probability of the error detection of the synchronization code due to errors can be decreased.
Moreover, since the error correction/detection coding is carried out after the code word is transformed by the bit insertion, the error protection is carried out for the inserted bit. Therefore, in comparison with conventional systems for carrying out the bit insertion after the error correction/detection coding, the probability that an error occurs in the inserted bit is decreased. In addition, since the bit insertion is carried out only into the synchronization code inserting position, the increase of the quantity of cods due to the bit insertion is smaller than that in conventional systems for carrying out the bit insertion over the whole code string, so that the coding efficiency is improved.
(3) According to the third coding/decoding system, since the error correcting/detecting code immediately before the synchronization code is a degenerate code, it is possible to decrease the number of inserted bits for compensating the remainder of the information bit at the portion immediately before the synchronization code, to improve the coding efficiency, in comparison with conventional coding systems.
(4) According to the fourth coding/decoding system, the coding system utilizes the multiplexing rule in the high-efficiency compression coding system, such as image and voice, and switches the error correcting/detecting code in accordance with the kind of the information of an input code string, and the decoding system determines the kind of the error correcting/detecting code on the basis of the decoded information to carry out the same switching as that of the coding system. Therefore, it is not required to add the header information representative of the kind of the error correcting/detecting code, and it is possible to assign the number of bits to high efficiency compression coding, such as image and voice, so that it is possible to improve the information quality, such as picture quality and sound quality.
(5) According to fifth coding/decoding system, the coding system transforms an input code string so that a humming distance in a synchronization code inserting interval as well as a humming distance in an interval of a predetermined number of bits before and after the synchronization code inserting interval are equal to or greater than a predetermined value, and the decoding system carries out the inverse transformation of the input code string, so that it is possible to prevent the same bit pattern as the synchronization code from being contained in this interval. Therefore, even if a bit string coded through a transmission line and/or a storage medium, which may cause a bit loss for losing a part of bit is lost and a bit addition for adding an excess bit, is transmitted/stored, if the number of lost/added bits is equal to or less than a predetermined number of bits, it is possible to distinguish a synchronization code from other code strings, so that the decoding system can correctly carry out the synchronization detection.
(6) According to the sixth coding/decoding system, since the coding system inserts synchronization codes only into synchronization code inserting positions periodically predetermined in a multiplexed code string, which is obtained by multiplexing kinds of compressed codes, the decoding system may carry out the synchronization detection only at the synchronization code inserting positions, so that the number of the synchronization code detecting processes can be decreased in comparison with conventional systems for inserting synchronization codes into a code string at optional positions.
In addition, since the probability that a pseudo synchronization occurs by the variation of the bit string inputted to the decoding system into the same bit pattern as the synchronization code, is decreased in accordance with the decrease of the number of the synchronization code detecting processes, it is possible to prevent the pseudo synchronization according to the present invention, so that the processing quantity for the synchronization code detection decreases.
(7) According to the seventh coding/decoding system, in addition to the construction of the sixth coding/decoding system, the bit insertion in view of the error of the synchronization code, i.e., the transformation of the humming distance of the bit string at the synchronization code inserting position from the synchronization code is carried out, so that the same bit pattern as the synchronization code is not contained in the bit string. Therefore, it is ensured that the error detection of the synchronization code does not occur with respect to errors of the supposed number of bits, so that the probability of error detection of synchronization codes can be decreased.